home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1909.txt < prev    next >
Text File  |  1997-04-01  |  46KB  |  1,068 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                              K. McCloghrie, Editor
  8. Request for Comments: 1909                           Cisco Systems, Inc.
  9. Category: Experimental                                     February 1996
  10.  
  11.  
  12.               An Administrative Infrastructure for SNMPv2
  13.  
  14. Status of this Memo
  15.  
  16.    This memo defines an Experimental Protocol for the Internet
  17.    community.  This memo does not specify an Internet standard of any
  18.    kind.  Discussion and suggestions for improvement are requested.
  19.    Distribution of this memo is unlimited.
  20.  
  21. Table of Contents
  22.  
  23.    1. Introduction ................................................    2
  24.    2. Overview ....................................................    2
  25.    2.1 Contexts ...................................................    3
  26.    2.2 Authorization: Access Rights and MIB Views .................    3
  27.    2.3 Authentication and Privacy .................................    4
  28.    2.4 Access Control .............................................    5
  29.    2.5 Security Models ............................................    5
  30.    2.6 Proxy ......................................................    5
  31.    3. Elements of the Model .......................................    7
  32.    3.1 SNMPv2 Entity ..............................................    7
  33.    3.2 SNMPv2 Agent ...............................................    7
  34.    3.3 SNMPv2 Manager .............................................    8
  35.    3.4 SNMPv2 Dual-Role Entity ....................................    8
  36.    3.5 View Subtree and Families ..................................    9
  37.    3.6 MIB View ...................................................    9
  38.    3.7 SNMPv2 Context .............................................   10
  39.    3.7.1 Local SNMPv2 Context .....................................   11
  40.    3.7.2 Proxy SNMPv2 Context .....................................   11
  41.    3.8 SNMPv2 PDUs and Operations .................................   12
  42.    3.8.1 The Report-PDU ...........................................   12
  43.    3.9 SNMPv2 Access Control Policy ...............................   13
  44.    4. Security Considerations .....................................   13
  45.    5. Editor's Address ............................................   14
  46.    6. Acknowledgements ............................................   14
  47.    7. References ..................................................   14
  48.    Appendix A Disambiguating the SNMPv2 Protocol Definition .......   16
  49.    Appendix B Who Sends Inform-Requests?  .........................   17
  50.    Appendix B.1 Management Philosophy .............................   17
  51.    Appendix B.2 The Danger of Trap Storms .........................   17
  52.    Appendix B.3 Inform-Requests ...................................   18
  53.  
  54.  
  55.  
  56.  
  57.  
  58. McCloghrie                    Experimental                      [Page 1]
  59.  
  60. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  61.  
  62.  
  63. 1.  Introduction
  64.  
  65.    A management system contains:  several (potentially many) nodes, each
  66.    with a processing entity, termed an agent, which has access to
  67.    management instrumentation; at least one management station; and, a
  68.    management protocol, used to convey management information between
  69.    the agents and management stations.  Operations of the protocol are
  70.    carried out under an administrative framework which defines
  71.    authentication, authorization, access control, and privacy policies.
  72.  
  73.    Management stations execute management applications which monitor and
  74.    control managed elements.  Managed elements are devices such as
  75.    hosts, routers, terminal servers, etc., which are monitored and
  76.    controlled via access to their management information.
  77.  
  78.    It is the purpose of this document, An Administrative Infrastructure
  79.    for SNMPv2, to define an administrative framework which realizes
  80.    effective management in a variety of configurations and environments.
  81.    The SNMPv2 framework is fully described in [1-6].  This framework is
  82.    derived from the original Internet-standard Network Management
  83.    Framework (SNMPv1), which consists of these three documents:
  84.  
  85.       STD 16, RFC 1155 [7] which defines the Structure of Management
  86.       Information (SMI), the mechanisms used for describing and naming
  87.       objects for the purpose of management.
  88.  
  89.       STD 16, RFC 1212 [8] which defines a more concise description
  90.       mechanism, which is wholly consistent with the SMI.
  91.  
  92.       STD 15, RFC 1157 [9] which defines the Simple Network Management
  93.       Protocol (SNMP), the protocol used for network access to managed
  94.       objects.
  95.  
  96.    For information on coexistence between SNMPv1 and SNMPv2, consult
  97.    [10].
  98.  
  99. 2.  Overview
  100.  
  101.    A management domain typically contains a large amount of management
  102.    information.  Each individual item of management information is an
  103.    instance of a managed object type.  The definition of a related set
  104.    of managed object types is contained in a Management Information Base
  105.    (MIB) module.  Many such MIB modules are defined.  For each managed
  106.    object type it describes, a MIB module defines not only the semantics
  107.    and syntax of that managed object type, but also the method of
  108.    identifying an individual instance so that multiple instances of the
  109.    same managed object type can be distinguished.
  110.  
  111.  
  112.  
  113.  
  114. McCloghrie                    Experimental                      [Page 2]
  115.  
  116. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  117.  
  118.  
  119. 2.1.  Contexts
  120.  
  121.    Typically, there are many instances of each managed object type
  122.    within a management domain.  For simplicity, the method for
  123.    identifying instances specified by the MIB module does not allow each
  124.    instance to be distinguished amongst the set of all instances within
  125.    the management domain; rather, it allows each instance to be
  126.    identified only within some scope or "context", where there are
  127.    multiple such contexts within the management domain.  Often, a
  128.    context is a physical device, or perhaps, a logical device, although
  129.    a context can also encompass multiple devices, or a subset of a
  130.    single device, or even a subset of multiple devices.  Thus, in order
  131.    to identify an individual item of management information within the
  132.    management domain, its context must be identified in addition to its
  133.    object type and its instance.
  134.  
  135.    For example, the managed object type, ifDescr [11], is defined as the
  136.    description of a network interface.  To identify the description of
  137.    device-X's first network interface, three pieces of information are
  138.    needed, e.g., device-X (the context), ifDescr (the managed object
  139.    type), and "1" (the instance).
  140.  
  141.    Note that each context has (at least) one globally-unique
  142.    identification within the management domain.  Note also that the same
  143.    item of management information can exist in multiple contexts.  So,
  144.    an item of management information can have multiple globally-unique
  145.    identifications, either because it exists in multiple contexts,
  146.    and/or because each such context has multiple globally-unique
  147.    identifications.
  148.  
  149. 2.2.  Authorization: Access Rights and MIB Views
  150.  
  151.    For security reasons, it is often valuable to be able to restrict the
  152.    access rights of some management applications to only a subset of the
  153.    management information in the management domain.  To provide this
  154.    capability, access to a context is via a "MIB view" which details a
  155.    specific set of managed object types (and optionally, the specific
  156.    instances of object types) within that context.  For example, for a
  157.    given context, there will typically always be one MIB view which
  158.    provides access to all management information in that context, and
  159.    often there will be other MIB views each of which contains some
  160.    subset of the information.  So, by providing access rights to a
  161.    management application in terms of the particular (subset) MIB view
  162.    it can access for that context, then the management application is
  163.    restricted in the desired manner.
  164.  
  165.    Since managed object types (and their instances) are identified via
  166.    the tree-like naming structure of ISO's OBJECT IDENTIFIERs [12, 1],
  167.  
  168.  
  169.  
  170. McCloghrie                    Experimental                      [Page 3]
  171.  
  172. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  173.  
  174.  
  175.    it is convenient to define a MIB view as the combination of a set of
  176.    "view subtrees", where each view subtree is a sub-tree within the
  177.    managed object naming tree.  Thus, a simple MIB view (e.g., all
  178.    managed objects within the Internet Network Management Framework) can
  179.    be defined as a single view sub-tree, while more complicated MIB
  180.    views (e.g., all information relevant to a particular network
  181.    interface) can be represented by the union of multiple view sub-
  182.    trees.
  183.  
  184.    While any set of managed objects can be described by the union of
  185.    some number of view subtrees, situations can arise that would require
  186.    a very large number of view subtrees.  This could happen, for
  187.    example, when specifying all columns in one conceptual row of a MIB
  188.    table because they would appear in separate subtrees, one per column,
  189.    each with a very similar format.  Because the formats are similar,
  190.    the required set of subtrees can easily be aggregated into one
  191.    structure.  This structure is named a family of view subtrees after
  192.    the set of subtrees that it conceptually represents.  A family of
  193.    view subtrees can either be included or excluded from a MIB view.
  194.  
  195.    In addition to restricting access rights by identifying (sub-)sets of
  196.    management information, it is also valuable to restrict the requests
  197.    allowed on the management information within a particular context.
  198.    For example, one management application might be prohibited from
  199.    write-access to a particular context, while another might be allowed
  200.    to perform any type of operation.
  201.  
  202. 2.3.  Authentication and Privacy
  203.  
  204.    The enforcement of access rights requires the means not only to
  205.    identify the entity on whose behalf a request is generated but also
  206.    to authenticate such identification.  Another security capability
  207.    which is (optionally) provided is the ability to protect the data
  208.    within an SNMPv2 operation from disclosure (i.e., to encrypt the
  209.    data).  This is particularly useful when sensitive data (e.g.,
  210.    passwords, or security keys) are accessed via SNMPv2 requests.
  211.  
  212.    Recommendations for which algorithms are best for authentication and
  213.    privacy are subject to change.  Such changes may occur as and when
  214.    new research results on the vulnerability of various algorithms are
  215.    published, and/or with the prevailing status of export control and
  216.    patent issues.  Thus, it is valuable to allow these algorithms to be
  217.    specified as parameters, so that new algorithms can be accommodated
  218.    over time.  In particular, one type of algorithm which may become
  219.    useful in the future is the set of algorithms associated with
  220.    asymmetric (public key) cryptography.
  221.  
  222.    Note that not all accesses via SNMPv2 requests need to be secure.
  223.  
  224.  
  225.  
  226. McCloghrie                    Experimental                      [Page 4]
  227.  
  228. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  229.  
  230.  
  231.    Indeed, there are purposes for which insecure access is required.
  232.    One example of this is the ability of a management application to
  233.    learn about devices of which it has no previous knowledge.  Another
  234.    example is to perform any synchronization which the security
  235.    algorithms need before they can be used to communicate securely.
  236.    This need for insecure access is accommodated by defining one of the
  237.    algorithms for authentication as providing no authentication, and
  238.    similarly, one of the algorithms for privacy as providing no
  239.    protection against disclosure.  (The combination of these two
  240.    insecure algorithms is sometimes referred to as "noAuth/noPriv".)
  241.  
  242. 2.4.  Access Control
  243.  
  244.    An access control policy specifies the types of SNMPv2 requests and
  245.    associated MIB views which are authorized for a particular identity
  246.    (on whose behalf a request is generated) when using a particular
  247.    level of security to access a particular context.
  248.  
  249. 2.5.  Security Models
  250.  
  251.    A security model defines the mechanisms used to achieve an
  252.    administratively-defined level of security for protocol interactions:
  253.  
  254. (1)  by defining the security parameters associated with a
  255.      communication, including the authentication and privacy algorithms
  256.      and the security keys (if any) used.
  257.  
  258. (2)  by defining how entities on whose behalf requests are generated are
  259.      identified.
  260.  
  261. (3)  by defining how contexts are identified.
  262.  
  263. (4)  by defining the mechanisms by which an access control policy is
  264.      derived whenever management information is to be accessed.
  265.  
  266. 2.6.  Proxy
  267.  
  268.    It is an SNMPv2 agent which responds to requests for access to
  269.    management information.  Each such request is contained within an
  270.    SNMPv2 message which provides the capability to perform a single
  271.    operation on a list of items of management information.  Rather than
  272.    having to identify the context as well as the managed object type and
  273.    instance for each item of management information, each SNMPv2 message
  274.    is concerned with only a single context.  Thus, an SNMPv2 agent must
  275.    be able to process requests for all items of management information
  276.    within the one or more contexts it supports.
  277.  
  278.  
  279.  
  280.  
  281.  
  282. McCloghrie                    Experimental                      [Page 5]
  283.  
  284. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  285.  
  286.  
  287.    In responding to a request, an SNMPv2 agent might be acting as a
  288.    proxy for some other agent.  The term "proxy" has historically been
  289.    used very loosely, with multiple different meanings.  These different
  290.    meanings include (among others):
  291.  
  292. (1)  the forwarding of SNMPv2 requests on to other SNMP agents without
  293.      regard for what managed object types are being accessed; for
  294.      example, in order to forward SNMPv2 request from one transport
  295.      domain to another, or to translate SNMPv2 requests into SNMPv1
  296.      requests;
  297.  
  298. (2)  the translation of SNMPv2 requests into operations of some non-SNMP
  299.      management protocol;
  300.  
  301. (3)  support for aggregated managed objects where the value of one
  302.      managed object instance depends upon the values of multiple other
  303.      (remote) items of management information.
  304.  
  305.    Each of these scenarios can be advantageous; for example, support for
  306.    aggregation for management information can significantly reduce the
  307.    bandwidth requirements of large-scale management activities.
  308.    However, using a single term to cover multiple different scenarios
  309.    causes confusion.
  310.  
  311.    To avoid such confusion, this SNMPv2 administrative framework uses
  312.    the term "proxy" with a much more tightly defined meaning, which
  313.    covers only the first of those listed above.  Specifically, the
  314.    distinction between a "regular SNMPv2 agent" and a "proxy SNMPv2
  315.    agent" is simple:
  316.  
  317.   -  a proxy SNMPv2 agent is an SNMPv2 agent which forwards requests on
  318.      to other agents according to the context, and irrespective of the
  319.      specific managed object types being accessed;
  320.  
  321.   -  in contrast, an SNMPv2 agent which processes SNMPv2 requests
  322.      according to the (names of the) individual managed object types and
  323.      instances being accessed, is NOT a proxy SNMPv2 agent from the
  324.      perspective of this administrative model.
  325.  
  326.    Thus, when an SNMPv2 agent acts as a proxy SNMPv2 agent for a
  327.    particular context, although information on how to forward the
  328.    request is specifically associated with that context, the proxy
  329.    SNMPv2 agent has no need of a detailed definition of the MIB view
  330.    (since the proxy SNMPv2 agent forwards the request irrespective of
  331.    the managed object types).
  332.  
  333.    In contrast, a SNMPv2 agent operating without proxy must have the
  334.    detailed definition of the MIB view, and even if it needs to issue
  335.  
  336.  
  337.  
  338. McCloghrie                    Experimental                      [Page 6]
  339.  
  340. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  341.  
  342.  
  343.    requests to other agents, that need is dependent on the individual
  344.    managed object instances being accessed (i.e., not only on the
  345.    context).
  346.  
  347. 3.  Elements of the Model
  348.  
  349.    This section provides a more formal description of the model.
  350.  
  351. 3.1.  SNMPv2 Entity
  352.  
  353.    An SNMPv2 entity is an actual process which performs management
  354.    operations by generating and/or responding to SNMPv2 protocol
  355.    messages in the manner specified in [4].  An SNMPv2 entity assumes
  356.    the identity of a particular administrative entity when processing an
  357.    SNMPv2 message.
  358.  
  359.    An SNMPv2 entity is not required to process multiple protocol
  360.    messages concurrently, regardless of whether such messages require it
  361.    to assume the identity of the same or different administrative
  362.    entity.  Thus, an implementation of an SNMPv2 entity which supports
  363.    more than one administrative entity need not be multi-threaded.
  364.    However, there may be situations where implementors may choose to use
  365.    multi-threading.
  366.  
  367.    An SNMPv2 entity listens for incoming, unsolicited SNMPv2 messages on
  368.    each transport service address for which it is configured to do so.
  369.    It is a local matter whether an SNMPv2 entity also listens for SNMPv2
  370.    messages on any other transport service addresses.  In the absence of
  371.    any other information on where to listen, an SNMPv2 entity must
  372.    listen on the transport service addresses corresponding to the
  373.    standard transport-layer "ports" [5] on its local network-layer
  374.    addresses.
  375.  
  376. 3.2.  SNMPv2 Agent
  377.  
  378.    An SNMPv2 agent is the operational role assumed by an SNMPv2 entity
  379.    when it acts in an agent role.  Specifically, an SNMPv2 agent
  380.    performs SNMPv2 management operations in response to received SNMPv2
  381.    protocol messages (except for inform notifications).
  382.  
  383.    In order to be manageable, all network components need to be
  384.    instrumented.  SNMPv2 access to the instrumented information is via
  385.    the managed objects supported by an SNMPv2 agent in one or more
  386.    contexts.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. McCloghrie                    Experimental                      [Page 7]
  395.  
  396. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  397.  
  398.  
  399. 3.3.  SNMPv2 Manager
  400.  
  401.    An SNMPv2 manager is the operational role assumed by an SNMPv2 entity
  402.    when it acts in a manager role on behalf of management applications.
  403.    Specifically, an SNMPv2 manager initiates SNMPv2 management
  404.    operations by the generation of appropriate SNMPv2 protocol messages,
  405.    or when it receives and processes trap and inform notifications.
  406.  
  407.    It is interesting to consider the case of managing an SNMPv2 manager.
  408.    It is highly desirable that an SNMPv2 manager, just like any other
  409.    networking application, be instrumented for the purposes of being
  410.    managed.  Such instrumentation of an SNMPv2 manager (just like for
  411.    any other networking application) is accessible via the managed
  412.    objects supported by an SNMPv2 agent.  As such, an SNMPv2 manager is
  413.    no different from any other network application in that it has
  414.    instrumentation, but does not itself have managed objects.
  415.  
  416.    That is, an SNMPv2 manager does not itself have managed objects.
  417.    Rather, it is an associated SNMPv2 agent supporting managed objects
  418.    which provides access to the SNMPv2 manager's instrumentation.
  419.  
  420. 3.4.  SNMPv2 Dual-Role Entity
  421.  
  422.    An SNMPv2 entity which sometimes acts in an agent role and sometimes
  423.    acts in a manager role, is termed an SNMPv2 dual-role entity.  An
  424.    SNMPv2 dual-role entity initiates requests by acting in a manager
  425.    role, and processes requests regarding management information
  426.    accessible to it (locally or via proxy) through acting in an agent
  427.    role.  In the case of sending inform notifications, an SNMPv2 dual-
  428.    role entity acts in a manager role in initiating an inform
  429.    notification containing management information which is accessible to
  430.    it when acting in an agent role.
  431.  
  432.    An SNMPv2 entity which can act only in an SNMPv2 manager role is not
  433.    SNMP-manageable, since there is no way to access its management
  434.    instrumentation.  In order to be SNMP-manageable, an SNMPv2 entity
  435.    must be able to act in an SNMPv2 agent role in order to allow its
  436.    instrumentation to be accessed.  Thus, it is highly desirable that
  437.    all SNMPv2 entities be either SNMPv2 agents or SNMPv2 dual-role
  438.    entities.
  439.  
  440.    There are two categories of SNMPv2 dual-role entities:  proxy SNMPv2
  441.    agents and (so-called) mid-level managers.  Proxy SNMPv2 agents only
  442.    forward requests/responses; they do not originate requests.  In
  443.    contrast, mid-level managers often originate requests.  (Note that
  444.    the term proxy SNMPv2 agent does not include an SNMPv2 agent which
  445.    translates SNMPv2 requests into the requests of some other management
  446.    protocol; see section 2.6.)
  447.  
  448.  
  449.  
  450. McCloghrie                    Experimental                      [Page 8]
  451.  
  452. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  453.  
  454.  
  455. 3.5.  View Subtree and Families
  456.  
  457.    A view subtree is the set of all MIB object instances which have a
  458.    common ASN.1 OBJECT IDENTIFIER prefix to their names.  A view subtree
  459.    is identified by the OBJECT IDENTIFIER value which is the longest
  460.    OBJECT IDENTIFIER prefix common to all (potential) MIB object
  461.    instances in that subtree.
  462.  
  463.    A family of view subtrees is a pairing of an OBJECT IDENTIFIER value
  464.    (called the family name) together with a bitstring value (called the
  465.    family mask).  The family mask indicates which sub-identifiers of the
  466.    associated family name are significant to the family's definition.
  467.  
  468.    For each possible managed object instance, that instance belongs to a
  469.    particular view subtree family if both of the following conditions
  470.    are true:
  471.  
  472. o    the OBJECT IDENTIFIER name of the managed object instance contains
  473.      at least as many sub-identifiers as does the family name, and
  474.  
  475. o    each sub-identifier in the OBJECT IDENTIFIER name of the managed
  476.      object instance matches the corresponding sub-identifier of the
  477.      family name whenever the corresponding bit of the associated family
  478.      mask is non-zero.
  479.  
  480.    When the configured value of the family mask is all ones, the view
  481.    subtree family is identical to the single view subtree identified by
  482.    the family name.
  483.  
  484.    When the configured value of the family mask is shorter than required
  485.    to perform the above test, its value is implicitly extended with
  486.    ones.  Consequently, a view subtree family having a family mask of
  487.    zero length always corresponds to a single view subtree.
  488.  
  489. 3.6.  MIB View
  490.  
  491.    A MIB view is a subset of the set of all instances of all object
  492.    types defined according to the SMI [1] within an SNMPv2 context,
  493.    subject to the following constraints:
  494.  
  495. o    It is possible to specify a MIB view which contains the full set of
  496.      all object instances within an SNMPv2 context.
  497.  
  498. o    Each object instance within a MIB view is uniquely named by an
  499.      ASN.1 OBJECT IDENTIFIER value.
  500.  
  501.    As such, identically named instances of a particular object type must
  502.    be contained within different SNMPv2 contexts.  That is, a particular
  503.  
  504.  
  505.  
  506. McCloghrie                    Experimental                      [Page 9]
  507.  
  508. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  509.  
  510.  
  511.    object instance name resolves within a particular SNMPv2 context to
  512.    at most one object instance.
  513.  
  514.    A MIB view is defined as a collection of view subtree families, where
  515.    each view subtree family has a type.  The type determines whether the
  516.    view subtree family is included in, or excluded from, the MIB view.
  517.  
  518.    A managed object instance is contained/not contained within the MIB
  519.    view according to the view subtree families to which the instance
  520.    belongs:
  521.  
  522. o    If a managed object instance belongs to none of the relevant
  523.      subtree families, then that instance is not in the MIB view.
  524.  
  525. o    If a managed object instance belongs to exactly one of the relevant
  526.      subtree families, then that instance is included in, or excluded
  527.      from, the relevant MIB view according to the type of that subtree
  528.      family.
  529.  
  530. o    If a managed object instance belongs to more than one of the
  531.      relevant subtree families, then that instance is included in, or
  532.      excluded from, the relevant MIB view according to the type of a
  533.      particular one of the subtree families to which it belongs.  The
  534.      particular subtree family is the one for which, first, the
  535.      associated family name comprises the greatest number of sub-
  536.      identifiers, and, second, the associated family name is
  537.      lexicographically greatest.
  538.  
  539. 3.7.  SNMPv2 Context
  540.  
  541.    An SNMPv2 context is a collection of management information
  542.    accessible by an SNMPv2 entity.  The collection of management
  543.    information identified by a context is either local or proxy.
  544.  
  545.    For a local SNMPv2 context which is realized by an SNMPv2 entity,
  546.    that SNMPv2 entity uses locally-defined mechanisms to access the
  547.    management information identified by the SNMPv2 context.
  548.  
  549.    For a proxy SNMPv2 context, the SNMPv2 entity acts as a proxy SNMPv2
  550.    agent to access the management information identified by the SNMPv2
  551.    context.
  552.  
  553.    The term remote SNMPv2 context is used at an SNMPv2 manager to
  554.    indicate a SNMPv2 context (either local or proxy) which is not
  555.    realized by the local SNMPv2 entity (i.e.,  the local SNMPv2 entity
  556.    uses neither locally-defined mechanisms, nor acts as a proxy SNMPv2
  557.    agent, to access the management information identified by the SNMPv2
  558.    context).
  559.  
  560.  
  561.  
  562. McCloghrie                    Experimental                     [Page 10]
  563.  
  564. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  565.  
  566.  
  567. 3.7.1.  Local SNMPv2 Context
  568.  
  569.    A local context refers to a collection of MIB objects which
  570.    (logically) belong to a single entity within a managed device.  When
  571.    an SNMPv2 entity accesses that management information, it does so
  572.    using locally-defined mechanisms.
  573.  
  574.    Because a device may contain several such local entities, each local
  575.    context has associated with it a "local entity" name.  Further,
  576.    because management information changes over time, each local context
  577.    also has associated with it an associated temporal domain, termed its
  578.    "local time".  This allows, for example, one context to refer to the
  579.    current values of a device's parameters, and a different context to
  580.    refer to the values that the same parameters for the same device will
  581.    have after the device's next restart.
  582.  
  583. 3.7.2.  Proxy SNMPv2 Context
  584.  
  585.    A proxy relationship exists when a proxy SNMPv2 agent processes a
  586.    received SNMPv2 message (a request or a response) by forwarding it to
  587.    another entity, solely according to the SNMPv2 context of the
  588.    received message.  Such a context is called a proxy SNMPv2 context.
  589.    When an SNMPv2 entity processes management requests/responses for a
  590.    proxy context, it is operating as a proxy SNMPv2 agent.
  591.  
  592.    The transparency principle that defines the behavior of an SNMPv2
  593.    entity in general, applies in particular to a proxy SNMPv2 context:
  594.  
  595.      The manner in which a receiving SNMPv2 entity processes SNMPv2
  596.      protocol messages sent by another SNMPv2 entity is entirely
  597.      transparent to the sending SNMPv2 entity.
  598.  
  599.    Implicit in the transparency principle is the requirement that the
  600.    semantics of SNMPv2 management operations are preserved between any
  601.    two SNMPv2 peers.  In particular, the "as if simultaneous" semantics
  602.    of a
  603.  
  604.    Set operation are extremely difficult to guarantee if its scope
  605.    extends to management information resident at multiple network
  606.    locations.  Note however, that agents which support the forwarding of
  607.    Set operations concerning information at multiple locations are not
  608.    considered to be proxy SNMPv2 agents (see section 2.6 above).
  609.  
  610.    Also implicit in the transparency principle is the requirement that,
  611.    throughout its interaction with a proxy SNMPv2 agent, an SNMPv2
  612.    manager is supplied with no information about the nature or progress
  613.    of the proxy mechanisms used to perform its requests.  That is, it
  614.    should seem to the SNMPv2 manager (except for any distinction in an
  615.  
  616.  
  617.  
  618. McCloghrie                    Experimental                     [Page 11]
  619.  
  620. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  621.  
  622.  
  623.    underlying transport address) as if it were interacting via SNMPv2
  624.    directly with the proxied device.  Thus, a timeout in the
  625.    communication between a proxy SNMPv2 agent and its proxied device
  626.    should be represented as a timeout in the communication between the
  627.    SNMPv2 manager and the proxy SNMPv2 agent.  Similarly, an error
  628.    response from a proxied device should - as much as possible - be
  629.    represented by the corresponding error response in the interaction
  630.    between the proxy SNMPv2 agent and SNMPv2 manager.
  631.  
  632. 3.8.  SNMPv2 PDUs and Operations
  633.  
  634.    An SNMPv2 PDU is defined in [4].  Each SNMPv2 PDU specifies a
  635.    particular operation, one of:
  636.  
  637.                GetBulkRequest
  638.                GetNextRequest
  639.                GetRequest
  640.                Inform
  641.                Report
  642.                Response
  643.                SNMPv2-Trap
  644.                SetRequest
  645.  
  646. 3.8.1.  The Report-PDU
  647.  
  648.    [4] requires that an administrative framework which makes use of the
  649.    Report-PDU must define its usage and semantics.  With this
  650.    administrative framework, the Report-PDU differs from the other PDU
  651.    types described in [4] in that it is not a protocol operation between
  652.    SNMPv2 managers and agents, but rather is an aspect of error-
  653.    reporting between SNMPv2 entities. Specifically, it is an interaction
  654.    between two protocol engines.
  655.  
  656.    A communication between SNMPv2 entities is in the form of an SNMPv2
  657.    message.  Such a message is formatted as a "wrapper" encapsulating a
  658.    PDU according to the "Elements of Procedure" for the security model
  659.    used for transmission of the message.
  660.  
  661.    While processing a received communication, an SNMPv2 entity may
  662.    determine that the received message is unacceptable due to a problem
  663.    associated with the contents of the message "wrapper".  In this case,
  664.    an appropriate counter is incremented and the received message is
  665.    discarded without further processing (and without transmission of a
  666.    Response-PDU).
  667.  
  668.    However, if an SNMPv2 entity acting in the agent role makes such a
  669.    determination, then after incrementing the appropriate counter, it
  670.    may be required to generate a Report-PDU and to send it to the
  671.  
  672.  
  673.  
  674. McCloghrie                    Experimental                     [Page 12]
  675.  
  676. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  677.  
  678.  
  679.    transport address which originated the received message.
  680.  
  681.    If the agent is able to determine the value of the request-id field
  682.    of the received PDU [4], then it must use that value for the
  683.    request-id field of the Report-PDU.  Otherwise, the value 2147483647
  684.    is used.
  685.  
  686.    The error-status and error-index fields of the Report-PDU are always
  687.    set to zero.  The variable-bindings field contains a single variable:
  688.    the identity of the counter which was incremented and its new value.
  689.  
  690.    There is at least one case in which a Report-PDU must not be sent by
  691.    an SNMPv2 entity acting in the agent role: if the received message
  692.    was tagged as a Report-PDU.  Particular security models may identify
  693.    other such cases.
  694.  
  695. 3.9.  SNMPv2 Access Control Policy
  696.  
  697.    An SNMPv2 access policy specifies the types of SNMPv2 operations
  698.    authorized for a particular identity using a particular level of
  699.    security, and if the operation is to be performed on a local SNMPv2
  700.    context, two accessible MIB views.  The two MIB views are a read-view
  701.    and a write-view.  A read-view is a set of object instances
  702.    authorized for the identity when reading objects.  Reading objects
  703.    occurs when processing a retrieval (get, get-next, get-bulk)
  704.    operation and when sending a notification.  A write-view is the set
  705.    of object instances authorized for the identity when writing objects.
  706.    Writing objects occurs when processing a set operation.  An
  707.    identity's access rights may be different at different agents.
  708.  
  709.    A security model defines how an SNMPv2 access policy is derived;
  710.    however, the application of an SNMPv2 access control policy is
  711.    performed only:
  712.  
  713. o    on receipt of GetRequest, GetNextRequest, GetBulkRequest, and
  714.      SetRequest operations; and
  715.  
  716. o    prior to transmission of SNMPv2-Trap and Inform operations.
  717.  
  718.    Note that application of an SNMPv2 access control policy is never
  719.    performed for Response or Report operations.
  720.  
  721. 4.  Security Considerations
  722.  
  723.    Security issues are not directly discussed in this memo.
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. McCloghrie                    Experimental                     [Page 13]
  731.  
  732. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  733.  
  734.  
  735. 5.  Editor's Address
  736.  
  737.    Keith McCloghrie
  738.    Cisco Systems, Inc.
  739.    170 West Tasman Drive
  740.    San Jose, CA  95134-1706
  741.    US
  742.  
  743.    Phone: +1 408 526 5260
  744.    EMail: kzm@cisco.com
  745.  
  746. 6.  Acknowledgements
  747.  
  748.    This document is the result of significant work by three major
  749.    contributors:
  750.  
  751.      Keith McCloghrie (Cisco Systems, kzm@cisco.com)
  752.      Marshall T. Rose (Dover Beach Consulting, mrose@dbc.mtview.ca.us)
  753.      Glenn W. Waters (Bell-Northern Research Ltd., gwaters@bnr.ca)
  754.  
  755.    The authors wish to acknowledge James M. Galvin of Trusted
  756.    Information Systems who contributed significantly to earlier work on
  757.    which this memo is based, and the general contributions of members of
  758.    the SNMPv2 Working Group, and, in particular, Aleksey Y. Romanov and
  759.    Steven L. Waldbusser.
  760.  
  761.    A special thanks is extended for the contributions of:
  762.  
  763.      Uri Blumenthal (IBM)
  764.      Shawn Routhier (Epilogue)
  765.      Barry Sheehan (IBM)
  766.      Bert Wijnen (IBM)
  767.  
  768. 7.  References
  769.  
  770. [1]  The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  771.      S. Waldbusser, "Structure of Management Information for Version 2
  772.      of the Simple Network Management Protocol (SNMPv2)", RFC 1902,
  773.      January 1996.
  774.  
  775. [2]  The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  776.      S. Waldbusser, "Textual Conventions for Version 2 of the Simple
  777.      Network Management Protocol (SNMPv2)", RFC 1903, January 1996.
  778.  
  779. [3]  The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  780.      S., Waldbusser, "Conformance Statements for Version 2 of the Simple
  781.      Network Management Protocol (SNMPv2)", RFC 1904, January 1996.
  782.  
  783.  
  784.  
  785.  
  786. McCloghrie                    Experimental                     [Page 14]
  787.  
  788. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  789.  
  790.  
  791. [4]  The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  792.      S. Waldbusser, "Protocol Operations for Version 2 of the Simple
  793.      Network Management Protocol (SNMPv2)", RFC 1905, January 1996.
  794.  
  795. [5]  The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  796.      Waldbusser, S., "Transport Mappings for Version 2 of the Simple
  797.      Network Management Protocol (SNMPv2)", RFC 1906, January 1996.
  798.  
  799. [6]  The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  800.      Waldbusser, S., "Management Information Base for Version 2 of the
  801.      Simple Network Management Protocol (SNMPv2)", RFC 1907,
  802.      January 1996.
  803.  
  804. [7]  Rose, M., and K. McCloghrie, "Structure and Identification of
  805.      Management Information for TCP/IP-based internets", STD 16, RFC
  806.      1155, May 1990.
  807.  
  808. [8]  Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD 16,
  809.      RFC 1212, March 1991.
  810.  
  811. [9]  Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
  812.      Network Management Protocol", STD 15, RFC 1157, SNMP Research,
  813.      Performance Systems International, MIT Laboratory for Computer
  814.      Science, May 1990.
  815.  
  816. [10] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
  817.      Waldbusser, S., "Coexistence between Version 1 and Version 2 of the
  818.      Internet-standard Network Management Framework", RFC 1908, January
  819.      1996.
  820.  
  821. [11] McCloghrie, K., and F. Kastenholz, "Evolution of the Interfaces
  822.      Group of MIB-II", RFC 1573, Cisco Systems, FTP Software, January
  823.      1994.
  824.  
  825. [12] Information processing systems - Open Systems Interconnection -
  826.      Specification of Abstract Syntax Notation One (ASN.1),
  827.      International Organization for Standardization.  International
  828.      Standard 8824, (December, 1987).
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. McCloghrie                    Experimental                     [Page 15]
  843.  
  844. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  845.  
  846.  
  847. APPENDIX A - Disambiguating the SNMPv2 Protocol Definition
  848.  
  849. The descriptions in [4] of the role in which an SNMPv2 entity acts when
  850. sending an Inform-Request PDU are ambiguous.  The following updates
  851. serve to remove those ambiguities.
  852.  
  853. (1)  Add the following sentence to section 2.1:
  854.  
  855.           Further, when an SNMPv2 entity sends an inform notification,
  856.           it acts in a manager role in respect to initiating the
  857.           operation, but the management information contained in the
  858.           inform notification is associated with that entity acting in
  859.           an agent role.  By convention, the inform is sent from the
  860.           same transport address as the associated agent role is
  861.           listening on.
  862.  
  863. (2)  Modify the last sentence of the second paragraph in section 2.3:
  864.  
  865.           This type is used by one SNMPv2 entity, acting in a manager
  866.           role, to notify another SNMPv2 entity, also acting in a
  867.           manager role, of management information associated with the
  868.           sending SNMPv2 entity acting in an agent role.
  869.  
  870. (3)  Modify the second paragraph of section 4.2 (concerning the
  871.      generation of Inform-Request PDUs):
  872.  
  873.           It is mandatory that all SNMPv2 entities acting in a manager
  874.           role be able to generate the following PDU types: GetRequest-
  875.           PDU, GetNextRequest-PDU, GetBulkRequest-PDU, SetRequest-PDU,
  876.           and Response-PDU; further, all such implementations must be
  877.           able to receive the following PDU types: Response-PDU,
  878.           SNMPv2-Trap-PDU, InformRequest-PDU.  It is mandatory that all
  879.           dual-role SNMPv2 entities must be able to generate an Inform-
  880.           Request PDU.
  881.  
  882. (4)  Modify the first paragraph of section 4.2.7:
  883.  
  884.           An InformRequest-PDU is generated and transmitted at the
  885.           request of an application in a SNMPv2 entity acting in a
  886.           manager role, that wishes to notify another application (via
  887.           an SNMPv2 entity also acting in a manager role) of information
  888.           in a MIB view which is accessible to the sending SNMPv2 entity
  889.           when acting in an agent role.
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. McCloghrie                    Experimental                     [Page 16]
  899.  
  900. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  901.  
  902.  
  903. APPENDIX B - Who Sends Inform-Requests?
  904.  
  905. B.1.   Management Philosophy
  906.  
  907.    Ever since its beginnings as SGMP, through its definition as SNMPv1,
  908.    and continuing with the definition of SNMPv2, SNMP has embodied more
  909.    than just a management protocol and the definitions of MIB objects.
  910.    Specifically, SNMP has also had a fundamental philosophy of
  911.    management, consisting of a number of design strategies.  These
  912.    strategies have always included the following:
  913.  
  914. (1)  The impact of incorporating an SNMP agent into a system should be
  915.      minimal, so that both: a) it is feasible to do so even in the
  916.      smallest/cheapest of systems, and b) the operational role and
  917.      performance of a system is not compromised by the inclusion of an
  918.      SNMP agent.  This promotes widespread development, which allows
  919.      ubiquitous deployment of manageable systems.
  920.  
  921. (2)  Every system (potentially) incorporates an SNMP agent.  In
  922.      contrast, the number of SNMP managers is limited.  Thus, there is a
  923.      significantly larger number of SNMP agents than SNMP managers.
  924.      Therefore, overall system development/complexity/cost is optimized
  925.      if the SNMP agent is allowed to be simple and any required
  926.      complexity is performed by an SNMP manager.
  927.  
  928. (3)  The number of unsolicited messages generated by SNMP agents is
  929.      minimized.  This enables the amount of network management traffic
  930.      to be controlled by the small number of SNMP managers which are
  931.      (more) directly controlled by network operators.  In fact, this
  932.      control is considered of greater importance than any additional
  933.      protocol overhead which might be incurred.  Monitoring of network
  934.      state at any significant level of detail is accomplished primarily
  935.      by SNMP managers polling for the appropriate information, with the
  936.      use of unsolicited messages confined to those situations where it
  937.      is necessary to properly guide an SNMP manager regarding the timing
  938.      and focus of its polling.  This strategy is sometimes referred to
  939.      as "trap-directed polling".
  940.  
  941. B.2.   The Danger of Trap Storms
  942.  
  943.    The need for such control over the amount of network management
  944.    traffic is due to the potential that the SNMP manager receiving an
  945.    unsolicited message does not want, no longer wants, or already knows
  946.    of the information contained in the message.  This potential is
  947.    significantly reduced by having the majority of messages be specific
  948.    requests for information by SNMP managers and responses (to those
  949.    requests) from SNMP agents.
  950.  
  951.  
  952.  
  953.  
  954. McCloghrie                    Experimental                     [Page 17]
  955.  
  956. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  957.  
  958.  
  959.    The danger of not having the amount of network management be
  960.    controlled in this manner is the potential for a "storm" of useless
  961.    traps.  As a simple example of "useless", consider that after a
  962.    building power outage, every device in the network sends a coldStart
  963.    trap, even though every SNMP manager and every network operator
  964.    already knows what happened.  For a simple example of "storm",
  965.    consider the result if each transmitted trap caused the sending of
  966.    another.  The greater the number of problems in the state of the
  967.    network, the greater the risk of such a storm occurring, especially
  968.    in the unstructured, heterogeneous environment typical of today's
  969.    internets.
  970.  
  971.    While SNMP philosophy considers the above to be more important than
  972.    any lack of reliability in unsolicited messages, some
  973.    users/developers have been wary of using traps because of the use
  974.    (typically) of an unreliable transport protocol and because traps are
  975.    not acknowledged.  However, following this logic would imply that
  976.    having acknowledged-traps would make them reliable; of course, this
  977.    is false since no amount of re- transmission will succeed if the
  978.    receiver and/or the connectivity to the receiver is down.  A SNMP
  979.    manager cannot just sit and wait and assume the network is fine just
  980.    because it is not receiving any unsolicited messages.
  981.  
  982. B.3.   Inform-Requests
  983.  
  984.    One of the new features of SNMPv2 is the Inform-request PDU.  The
  985.    Inform-Request contains management information specified in terms of
  986.    MIB objects for a context supported by the sender.  Since by
  987.    definition, an SNMPv2 manager does not itself have managed objects
  988.    (see sections 3.3), the managed objects contained in the Inform-
  989.    request belong to a context of an SNMPv2 agent, just like the managed
  990.    objects contained in an SNMPv2-Trap.
  991.  
  992.    However, it is not the purpose of an Inform-request to change the
  993.    above described philosophy, i.e., it would be wrong to consider it as
  994.    an "acknowledged trap".  To do so, would make the likelihood and
  995.    effect of trap storms worse.  Recall the building power outage
  996.    example:  with regular traps, the SNMP manager's buffer just
  997.    overflows when it receives messages faster than it can cope with; in
  998.    contrast, if every device in the network were to send a coldStart
  999.    Inform-request, then after a power outage, all will re-transmit their
  1000.    Inform-request several times unless the receiving SNMP managers send
  1001.    responses.  In the best case when no messages are lost or re-
  1002.    transmitted, there are twice as many useless messages; in the worst
  1003.    case, the SNMP manager is unable to respond at all and every message
  1004.    is re-transmitted its maximum number of times.
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. McCloghrie                    Experimental                     [Page 18]
  1011.  
  1012. RFC 1909        An SNMPv2 Administrative Infrastructure    February 1996
  1013.  
  1014.  
  1015.    The above serves to explain the rationale behind the definition (see
  1016.    Appendix A's update to section 4.2.7 of [4]) that:
  1017.  
  1018.      An InformRequest-PDU is generated and transmitted at the request of
  1019.      an application in a SNMPv2 entity acting in a manager role, that
  1020.      wishes to notify another application (via an SNMPv2 entity also
  1021.      acting in a manager role) of information in a MIB view which is
  1022.      accessible to the sending SNMPv2 entity when acting in an agent
  1023.      role.
  1024.  
  1025.    This definition says that SNMPv2 agents do not send Inform-Requests,
  1026.    which has three implications (ordered in terms of importance):
  1027.  
  1028. (1)  the number of devices which send Inform-requests is required to be
  1029.      a small subset of all devices in the network;
  1030.  
  1031. (2)  while some devices traditionally considered to be SNMP agents are
  1032.      perfectly capable of sending Inform-requests, the overall system
  1033.      development/complexity/cost is not increased as it would be by
  1034.      having to configure/re-configure every SNMPv2 agent as to which
  1035.      Inform-requests to send where and how often; and
  1036.  
  1037. (3)  the cost of implementing an SNMPv2 agent in the smallest/cheapest
  1038.      system is not increased.
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. McCloghrie                    Experimental                     [Page 19]
  1067.  
  1068.